<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>天气案例_监视属性</title>
  <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>

<!--
    监视属性watch:
      1.当被监视的属性变化是，回调函数自动调用，进行相关操作
      2.监视的属性必须存在，才能进行监视
      3.监视的两种写法：
        （1）new Vue时传入 watch配置
        （2）通过 vm.$watch监视

-->

<div id="root">
  <h2>今天天气很{{weather}}</h2>
  <button @click="changeWeather">切换天气</button>
</div>
</body>
<script type="text/javascript">
  Vue.config.productionTip = false//阻止vue在启动时产生生产提示
 const vm= new Vue({
    el: "#root",
    data: {
      isHot: true
    },
    computed: {
      weather() {
        return this.isHot ? '炎热' : '凉爽'
      }
    },
    methods: {
      changeWeather() {
        this.isHot = !this.isHot
      }
    },
    // 第一种方式
    watch:{
    /*  isHot:{
        immediate:true,//true初始化时让handler调用一下
        // 当isHot发生改变时 handler被调用
        handler(newValue,oldValue){
          console.log('isHot',newValue,oldValue)
        }
      }*/
    }
  })

  // 第二种方式
  vm.$watch('isHot',{
    immediate:true,//初始化时让handler调用一下
    // 当isHot发生改变时 handler被调用
    handler(newValue,oldValue){
      console.log('isHot',newValue,oldValue)
    }
  })

</script>
</html>